scrolled window: Avoid a crash
authorMatthias Clasen <mclasen@redhat.com>
Fri, 20 Feb 2015 13:24:47 +0000 (08:24 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 20 Feb 2015 13:28:58 +0000 (08:28 -0500)
gtk_scrolled_window_allocate_scrollbar was calling
gtk_scrolled_window_allocate_child just to get the relative
allocation, overlooking the fact that that function is only
safe to call if the scrolled window _has_ a child. Unfortunately,
gtk_scrolled_window_allocate_scrollbar will sometimes get called
when that is not the case. Since we are really only interested
in the relative allocation, just get that directly. This
fixes a segfault in the style-properties-nth-child reftest.

gtk/gtkscrolledwindow.c

index 39dddc973f4626331766b1ca8311251368d92167..b3f3770e053d2100ac9267cfbfd06b4bc29abf22 100644 (file)
@@ -2494,7 +2494,7 @@ gtk_scrolled_window_allocate_scrollbar (GtkScrolledWindow *scrolled_window,
 
   priv = scrolled_window->priv;
 
-  gtk_scrolled_window_allocate_child (scrolled_window, &content_allocation);
+  gtk_scrolled_window_relative_allocation (widget, &content_allocation);
   sb_spacing = _gtk_scrolled_window_get_scrollbar_spacing (scrolled_window);
   gtk_widget_get_preferred_height (priv->hscrollbar, &sb_height, NULL);
   gtk_widget_get_preferred_width (priv->vscrollbar, &sb_width, NULL);